System and method for generating a user interface for text and item selection

ABSTRACT

A system and method for generating a user interface for text and item selection is disclosed. As described for various embodiments, a system and process is disclosed for providing an arrangement of selectable items, a mechanism for selection from the arrangement of selectable items, and a mechanism for adjusting the granularity of control of the selector. In one embodiment, the granularity control can be a zooming mechanism to modify the size and/or position of items in a selection set. In another embodiment, the granularity control can be a modification of the motion vector based on a distance from a reference point and the speed or quantity of deflection of a pointing device. Thus, as a selection point approaches the selection set, the motion of the selection point becomes less responsive to movement of the pointing device, so the user has more control over the positioning of the selection point relative to an item in the selection set.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice applies to the software and dataas described below and in the drawings that form a part of thisdocument: Copyright 2007-2009, OpenTV Inc., All Rights Reserved.

BACKGROUND

1. Technical Field

This disclosure relates to methods and systems supporting computing anddata processing systems. More particularly, a system and method forgenerating a user interface for text and item selection is described.

2. Related Art

Conventional systems, like www.twostick.org, can display two-dimensionalgrid of alphanumeric characters from which a user can make selections.These conventional systems allow a user to manipulate a joystick or gamecontroller to navigate right, left, up, and down within the grid toidentify and select a desired character. Other conventional systemsprovide a displayed on-screen replica of a standard two-dimensionalkeyboard that can be navigated in a similar two-dimensional manner.However, these conventional user interfaces for text input can be slowand awkward to use.

U.S. Pat. No. 6,593,913 describes a method and system for selecting acharacter with a user input device comprising a plurality of buttons. Inone preferred embodiment, a first plurality of characters is displayedon a display device in a pattern corresponding to a pattern of aplurality of buttons of a user input device, and a character from thefirst plurality of characters is selected in response to actuation ofone of the plurality of buttons. In this embodiment, the number ofcharacters displayed on the display device for selection by the userinput device is less than or equal to the number of buttons in theplurality of buttons. In this way, any of the characters displayed onthe display device for selection by the user input device can beselected by actuation of a single one of the plurality of buttons.

U.S. Pat. No. 5,543,818 describes a method and apparatus for enteringalphanumeric or other text to a computer system using an input devicehaving a small number of keys. The computer system includes a processorprogrammed to display a character selection menu (including displayedgroups of characters), to move a displayed cursor from one group toanother in response to actuation of at least one cursor movement key onthe input device, and to select a character within a group in responseto actuation of one of at least two selection keys on the input device.The system reduces the maximum number of keystrokes requiredconventionally to select a character from a character set, and enablescharacter selection from a larger set of displayed characters using nomore keystrokes than required conventionally to select the samecharacter from a smaller set.

U.S. Pat. No. 6,501,464 describes a graphical user interface in the formof a transparent keyboard may be positioned over an existing computerdisplay. The user may input textual data through the keyboard byselecting keys in the transparent keyboard display. The text entry maythen appear on the computer display in non-transparent or conventionalformat.

Thus, a system and method for generating a user interface for text anditem selection are needed.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which:

FIGS. 1-5 illustrate a particular example embodiment of a user interfacefor computer users, electronic game players, or television (TV) users inwhich an item selection set is arranged in a linear orientation.

FIGS. 6-10 illustrate a particular example embodiment of a userinterface for computer users or electronic game players in which an itemselection set is arranged in a circular orientation.

FIG. 11 illustrates a particular example embodiment of a user interfacefor computer users, electronic game players or TV users in which aselection set includes items representing a variety of physical orlogical entities.

FIGS. 12 and 13 illustrate processing flow diagrams for exampleembodiments.

FIG. 14 is a block diagram of machine in the example form of a computersystem within which instructions, for causing the machine to perform anyone or more of the methodologies discussed herein, may be executed.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of some example embodiments. It will be evident, however,to one of ordinary skill in the art that the various embodimentsdescribed herein may be practiced without these specific details.According to various example embodiments described herein, there isprovided a system and method for generating a user interface for textand item selection.

FIG. 1 illustrates a particular example embodiment of a user interfacefor computer users, electronic game players, or TV users. As shown inFIG. 1, a user interface 100 is shown as may be displayed within aconventional display screen window on a computer display, electronicgame system, or TV screen of a user. As described in more detail below,the user system may be connected or connectable to a pointing device,thumbstick device, mouse, TV remote device, a game controller device,spatial movement detection devices, such as the Wii system sold byNintendo of America, Inc., or any other hardware or softwaredevice/system, which can signal movement in a two-dimensional space viaa conventional hardware interface (hereinafter called a pointingdevice). The user system can use conventional hardware and operatingsystem software to support the novel user interface 100 describedherein.

The user interface 100 is created using the functionality of variousembodiments described herein. Referring to FIG. 1, the user interface100 in an example embodiment is comprised of a display region 102 (e.g.,a window, a data entry box, etc.) in which a selection set 104 isdisplayed. In the embodiment shown, the selection set 104 is comprisedof a set of items, each of which may represent an individuallyselectable option. In this case, the items in selection set 104 areletters of the English language alphabet. In other embodiments, theitems can be a set of selectable alphanumeric characters, alphanumericcharacters plus special characters, alphanumeric characters in alanguage other than English, mathematical symbols, geometric shapes,icons, logos, drawing primitives, objects, images, device objects, orany of a variety of other types of selectable items. In the embodimentillustrated in FIG. 1, the selection set 104 is configured in a linearpattern of evenly-spaced items extending to the borders of displayregion 102. In the embodiment shown in FIG. 1, a selection vector 106 isshown in the center of the display region 102. The selection vector 106is used to mark a location in display region 102 at which one of theitems in selection set 104 is selectable. In other words, if an item inselection set 104 overlays (or is in proximity to) selection vector 106,that item can be selected using selection button 112. For clarity, theselectable item overlaying (or in proximity to) selection vector 106 isreproduced as selectable item 108 as shown in FIG. 1. Thus, as shown inthe example embodiment of FIG. 1, the letter, ‘N’ of selection set 104is in proximity to selection vector 106. Therefore, the letter, ‘N’ isreproduced as selectable item 108 as shown in FIG. 1. If a user of userinterface 100 shown in FIG. 1 wishes to select the selectable item 108,the user can activate selection button 112. It will be apparent to thoseof ordinary skill in the art that selection button 112 can be any formof signal generation device, such as a hardware button or softkeylocated anywhere on a remote device, a gesture detection device, audiblecommand detection device, or the like. As a result of this activation ofselection button 112, the selected item is saved in an item stringcreated and saved in display area 116. Thus, as shown in the exampleembodiment of FIG. 1, the letter, ‘N’ of selection set 104 has beenselected by a user by user activation of selection button 112 and theselected item (i.e., letter, ‘N’) has been saved in the current positionof the item string in display area 116. The next position in the itemstring of display area 116 is represented by the underscore charactershown in display region 116 of FIG. 1. In a particular embodiment, abackspace button or item selection can be provided to clear a previousentry and move the string insertion point (i.e., an underscorecharacter) backward one position.

The example of FIG. 1 also illustrates a pointing device 111, which canbe deflected (or used to point) in two dimensions about a center pointof a motion area 110 of the pointing device 111 as shown in FIG. 1. Thepointing device 111 is shown in FIG. 1 at its neutral position (e.g.,undeflected position, center position, or home position) at the centerpoint of the pointing device motion area 110. In the neutral position,the selection set 104 remains static at its current position. In theexample of FIG. 1, the current position is as shown with the letter, ‘N’of selection set 104 in proximity to selection vector 106. As describedin more detail below, the deflection of the pointing device 111 causes acorresponding linear motion of the selection set 104 in relation to theselection vector 106. In various embodiments, the pointing device 111can signal movement in two dimensions simultaneously or may indicateseparate movements in just one direction. Additionally, other types ofpointing devices may indicate a vector movement relative to a point(e.g., the center of the motion area 110). Any of these pointing devicescan be used with the various embodiments described herein.

Referring now to the example embodiment shown in FIG. 2, the userinterface 100 is shown after a user has selected an item from theselection set 104 by activation of selection button 112 while thedesired item is positioned in proximity to selection vector 106. In thisparticular case, the user has selected the letter, ‘N’ of selection set104 and the selected item has been reproduced in the display region 116.As shown in the example of FIG. 2, the user has deflected the pointingdevice 111 to the left (the 270° position) as illustrated by the vectorshown in the representation of the pointing device motion area 110illustrated in FIG. 2. In response to this pointing device 111deflection, the selection set 104 is set in a relatively slow fluidmotion to the left as shown by the arrow 113 in FIG. 2. The selectionvector 106 remains stationary. As a result, the items in selection set104 pass over the selection vector 106 as long as the pointing deviceremains deflected to the left. As each item of selection set 104 passesover the selection vector 106, the corresponding item is reproduced asselectable item 108. The appearance of selectable item 108 indicates tothe user that the selectable item 108 can be selected by the user andcopied to the display area 116, if the selection button 112 is activatedat the moment the desired item is over the selection vector 106 anddisplayed as selectable item 108. In a particular embodiment, the speedat which the selection set moves can be controlled by the degree ofdeflection of the pointing device 111 to the left or right (the the 90°position). For example, if the pointing device 111 is only slightlydeflected to the left or right, the selection set 104 can move at a slowrate to the corresponding direction left or right. If the pointingdevice 111 is fully deflected to the left or right, the selection set104 can move at a fast rate to the corresponding direction left orright. The speed of movement of the selection set for a particular levelof deflection of the pointing device 111 can be pre-configured in aparticular embodiment. Thus, in the manner as shown in the example ofFIG. 2, a user can move the selection set 104 to the left with leftdeflection of the pointing device 111 to position a desired item in theselection set 10.4 over the selection vector 106. In the example of FIG.2, the user has moved the selection set 104 to the left with leftdeflection of the pointing device 111, positioned a desired item (e.g.,the letter ‘R’) in the selection set 104 over the selection vector 106,and activated selection button 112. As a result, the selected item(e.g., the letter ‘R’) has been copied to the display area 116 and thestring insertion point (i.e., an underscore character) has been advancedone position to the right to mark the point in the string at which thenext selected item will be inserted in the item string being assembledin display area 116.

Referring now to the example embodiment shown in FIG. 3, the user hasdeflected the pointing device 111 to the right (the 90° position) asillustrated by the vector shown in the representation of the pointingdevice motion area 110 illustrated in FIG. 3. In response to thispointing device 111 deflection, the selection set 104 is set in arelatively slow fluid motion to the right as shown by the arrow 115 inFIG. 3. Again, the selection vector 106 remains stationary. As a result,the items in selection set 104 pass over the selection vector 106 aslong as the pointing device remains deflected to the right. As each itemof selection set 104 passes over the selection vector 106, thecorresponding item is reproduced as selectable item 108 as describedabove. Again, the speed at which the selection set moves to the rightcan be controlled by the degree of deflection of the pointing device 111to the right. Thus, in the manner as shown in the example of FIG. 3, auser can move the selection set 104 to the right with right deflectionof the pointing device 111 to position a desired item in the selectionset 104 over the selection vector 106. In the example of FIG. 3, theuser has moved the selection set 104 to the right with right deflectionof the pointing device 111, positioned a desired item (e.g., the letter‘H’) in the selection set 104 over the selection vector 106, andactivated selection button 112. As a result, the selected item (e.g.,the letter ‘H’) has been copied to the display area 116 and the stringinsertion point (i.e., an underscore character) has been advanced oneposition to the right to mark the point in the string at which the nextselected item will be inserted in the item string being assembled indisplay area 116.

Referring now to the example embodiment shown in FIG. 4, a selection setzooming feature of a particular embodiment is illustrated. As shown inFIG. 4, the user has deflected the pointing device 111 in a downward(the 180° position) direction as illustrated by the vector shown in therepresentation of the pointing device motion area 110 illustrated inFIG. 4. In response to this pointing device 111 deflection, the items inselection set 104 have been reduced in size a relatively slow fluidmotion to simulate a zoom out operation in a view of the selection set104. One effect of the zoom out operation as shown in the example ofFIG. 4 is that the spacing between the items in selection set 104 hasbeen selectively reduced based on the amount of downward deflection ofthe pointing device 111 and the length of time the pointing device 111is deflected downward. With the resulting reduced spacing between itemsin selection set 104, the user can more quickly navigate to a desireditem with a left or right deflection of the pointing device 111. Incases where there may be many items in selection set 104, it may bedesirable to use the zoom out operation provided in a particularembodiment to more quickly reach an item in selection set 104 that islocated a relatively large distance away from the selection vector 106.Thus, in the manner as shown in the example of FIG. 4, a user canperform a zoom out operation to more quickly navigate to a desired itemwith a left or right deflection of the pointing device 111. After a zoomout operation has been performed as described above, the user is stillgiven the opportunity to move the selection set 104 to the right or leftwith right or left deflection of the pointing device 111 to position adesired item in the selection set 104 over the selection vector 106 andmake an item selection.

Referring now to the example embodiment shown in FIG. 5, the selectionset zooming feature of a particular embodiment is further illustrated.As shown in FIG. 5, the user has deflected the pointing device 111 in anupward (the 0° or 360° position) direction as illustrated by the vectorshown in the representation of the pointing device motion area 110illustrated in FIG. 5. In response to this pointing device 111 upwarddeflection, the items in selection set 104 have been enlarged in arelatively slow fluid motion to simulate a zoom in operation in a viewof the selection set 104. One effect of the zoom in operation as shownin the example of FIG. 5 is that the spacing between the items inselection set 104 has been selectively increased based on the amount ofupward deflection of the pointing device 111 and the length of time thepointing device 111 is deflected upward. With the resulting increasedspacing between items in selection set 104, the user can more accuratelynavigate to a desired item with a left or right deflection of thepointing device 111. In cases where there may be only a few items inselection set 104 or the items are densely packed together because ofdisplay area space limitations, it may be desirable to use the zoom inoperation provided in a particular embodiment to more accurately reachan item in selection set 104. Thus, in the manner as shown in theexample of FIG. 5, a user can perform a zoom in operation to moreaccurately navigate to a desired item with a left or right deflection ofthe pointing device 111. After a zoom in operation has been performed asdescribed above, the user is still given the opportunity to move theselection set 104 to the right or left with right or left deflection ofthe pointing device 111 to position a desired item in the selection set104 over the selection vector 106 and make an item selection.

In an alternative embodiment of the linearly arranged selection set 104embodiment 100 as shown in FIGS. 1-5, the selection set 104 can be heldstationary and the selection vector 106 can be moved to the left orright within display area 102 with a corresponding deflection of thepointing device 111 to the left or right. In this manner, a user canmove the selection vector 106 to the right with right deflection of thepointing device 111 or left with a left deflection of the pointingdevice 111 to position the selection vector 106 over a desired item inthe selection set 104. The selection of a desired item in the selectionset 104 can be performed in the manner described above. Similarly, thezoom in and zoom out operations can be performed in the same manner asdescribed above.

Referring now to FIGS. 6-10, an example embodiment 200 of a circularlyarranged selection set 204 embodiment is shown. In the particularembodiment shown, the circular item selection mechanism uses the sameunderlying principles as the linear embodiment described above. In thecircular embodiment, the available items of selection set 204 arearranged in a circular display area 202 as shown in FIG. 6. In relatedembodiments, the selection set 204 can be arranged in an oval shape, arectangular shape, or any other arbitrary shape. In these alternateembodiments, a radial position can be mapped to a particular location onan arbitrary shape. A small crosshair at the end of a selection vector206 is also provided to define a particular selection point. Asdescribed in more detail below, the selection vector 206 and itscrosshair indicator can be moved and positioned relative to thecircularly arranged selection set 204 using two-dimensional movement ofthe pointing device 211 relative to the motion area 110 of the pointingdevice 211 as represented in FIGS. 6-10. As shown in FIG. 6, thepointing device 211 is at its neutral position (undeflected position) atthe center point of the motion area 110 of the pointing device 211. Inthe neutral position, the selection vector 206 and its crosshairindicator remain positioned at the center of the circularly arrangedselection set 204. As described above for display area 116, a displayarea 216 is provided in example embodiment 200 to assemble an itemstring. A string insertion point (i.e., an underscore character) isprovided to mark the point in the string at which the next selected itemwill be inserted in the item string being assembled in display area 216.

Referring now to the example embodiment shown in FIG. 7, the user hasdeflected the pointing device 211 to the left and slightly downward (theapprox. 265° position) as illustrated by the vector shown in therepresentation of the pointing device motion area 110 illustrated inFIG. 7. In response to this pointing device 211 deflection, theselection vector 206 and its crosshair indicator (the selection point)has moved in a direction corresponding to the movement of the pointingdevice 211. In the example shown in FIG. 7, the selection vector 206 andits crosshair indicator has moved to overlay an item in the selectionset 204. In this embodiment, the selection set 204 remains stationary.By using the pointing device 211 to position the selection vector 206and its crosshair indicator over an item in the selection set 204, theuser can identify a selectable item, which is in proximity to thecrosshair indicator of selection vector 206. As the crosshair indicatorof selection vector 206 is moved in proximity to an item of selectionset 204, the selectable item identified thereby is highlighted ordistinctively shaded/colored to indicate to the user that the selectableitem can be selected by activation of selection button 112. If the useractivates selection button 112, the selectable item in selection set 204is copied to the insertion point position of display area 216 and thestring insertion point (i.e., an underscore character) is advanced tothe next position in the item string being assembled in display area216. In the example shown in FIG. 7, the user has deflected the pointingdevice 211 to the left and slightly downward (the approx. 265° position)thereby causing the selection vector 206 and its crosshair indicator tomove in a corresponding direction to overlay an item (e.g., letter ‘K’)in the selection set 204. The user has then activated selection button112 thereby causing the selectable item (e.g., letter ‘K’), identifiedby the movement of the selection vector 206 and its crosshair indicator,to be inserted at the insertion point of display area 216 as shown inFIG. 7. In this manner, a user can move the selection vector 206 and itscrosshair indicator in two dimensions by a corresponding two-dimensionaldeflection of the pointing device 211 to position the selection vector206 and its crosshair indicator over or in proximity to a desired itemin the selection set 204. The selection of the desired item in theselection set 104 can be performed by activation of selection button 112in the manner described above. In an alternative embodiment, the userdoes not need to position the crosshair indicator over or in proximityto a desired item in the selection set 204. Instead, the selectionvector 206 can merely be moved in a direction towards a desired itemselection and a radially projected selection vector 206 is used toidentify and highlight a selectable item in the selection set 204. Inthis manner, the user does not have to move the crosshair of selectionvector 216 completely out to the position of the desired item ofselection set 204.

In a particular embodiment, the location of the selection pointidentified by the position of the crosshair of selection vector 216 iscontinuously updated in response to corresponding movement of thepointing device 211. The same deflection of the pointing device 211 cancause different effects based on the location of the selection point.For example, when the selection point is positioned near the center ofthe circular selection set 204, the movement of the selection pointbecomes more rapid relative to the movement of the pointing device 211.When the selection point is positioned furthest from the center of thecircular selection set 204, the movement of the selection point becomesless rapid relative to the movement of the pointing device 211. In thismanner, the user can quickly position the selection point in theselection set 204 while maintaining accurate control as the selectionpoint approaches a desired item in selection set 204. In other words,the motion of the selection point slows as it nears the edge of thecircular selection set 204 making it easier for a user to hone in on atarget item. When the pointing device 211 is not deflected, theselection point is quickly pulled back to the center of the circularselection set 204.

In a particular embodiment, the motion of the crosshair of selectionvector 216 is always in the direction of deflection of the pointingdevice 211, but this motion can be taken from the current location ofthe crosshair. The magnitude of the motion vector as provided by thepointing device 211 can be relative to the current location of thecrosshair. For example, the crosshair may start in the center of thecircle and the pointing device 211 is then deflected as far as it can goin the 180 degree position. The selection position is updated by movingthe crosshair down so that it is perhaps ⅓ radians from the center(i.e., not all the way down.) The user then changes the deflection ofthe pointing device 211 to the full 270 degree position. This time, thecrosshair only moves 1/9 radians (because the crosshair is further fromthe center) and it moves from its current location to the left inresponse to the new deflection of the pointing device 211. In this case,the selection vector 206 would be pointing toward items, “F” or “G” asshown in FIG. 9 and would have a similar magnitude. In general, motionfor a particular embodiment is computed by just adding deflectionvectors to the current location, where the magnitude of the motionvector is adjusted based on the location of the crosshair relative tothe center position and the magnitude of the deflection. So even if theuser only keeps the pointing device 211 slightly deflected in a givendirection, then the crosshair will still eventually reach the edge ofthe selection ring 202.

In a particular embodiment, the selectable item that can be selected isindicated by a white crosshair and the item turns red. In a particularembodiment, a few special symbols can be used to indicate specialfunctions. For example:

-   ‘>’ can be used for space;-   ‘<’ can be used for backspace;-   ‘+’ can select a next alphabet arrangement as a selection set;-   ‘−’ can select a previous alphabet arrangement as a selection set.

Referring now to the example embodiment shown in FIG. 8, the user hasdeflected the pointing device 211 to the right and upward (the approx.45° position) as illustrated by the vector shown in the representationof the pointing device motion area 110 illustrated in FIG. 8. Inresponse to this pointing device 211 deflection, the selection vector206 and its crosshair indicator (the selection point) has moved in adirection corresponding to the movement of the pointing device 211. Inthe example shown in FIG. 8, the selection vector 206 and its crosshairindicator has moved to overlay an item in the circular selection set204. In this embodiment, the selection set 204 remains stationary. Asthe crosshair indicator of selection vector 206 is moved in proximity toan item of selection set 204, the selectable item identified thereby canbe highlighted or distinctively shaded/colored to indicate to the userthat the selectable item can be selected by activation of selectionbutton 112. In the example shown in FIG. 8, the user has deflected thepointing device 211 to the right and upward (the approx. 45° position)thereby causing the selection vector 206 and its crosshair indicator(the selection point) to move in a corresponding direction to overlay anitem (e.g., letter ‘U’) in the selection set 204. The user has thenactivated selection button 112 thereby causing the selectable item(e.g., letter ‘U’), identified by the selection point, to be inserted atthe insertion point of display area 216 as shown in FIG. 8. In thismanner, a user can move the selection point in two dimensions by acorresponding two-dimensional deflection of the pointing device 211 toposition the selection point over a desired item in the selection set204. The selection of the desired item in the selection set 104 can beperformed by activation of selection button 112 in the manner describedabove.

Referring now to the example embodiment shown in FIG. 9, the user hasdeflected the pointing device 211 downward and slightly to the left (theapprox. 182° position) as illustrated by the vector shown in therepresentation of the pointing device motion area 110 illustrated inFIG. 9. In this example, the user has applied only a slight deflectionof pointing device 211. In response to this pointing device 211deflection, the selection vector 206 and its crosshair indicator (theselection point) has moved in a direction corresponding to the movementof the pointing device 211; but, the selection point has only slightlymoved from the center position of the circular selection set 204 due tothe corresponding slight deflection of pointing device 211. In theexample shown in FIG. 8, the selection vector 206 and its crosshairindicator has not moved to overlay an item in the circular selection set204; but, the user can apply a larger deflection to the pointing device211 to select an item from the selection set 204 as described above.This larger deflection of pointing device 211 is shown in the example ofFIG. 10. As illustrated in FIG. 10, the user has more fully deflectedthe pointing device 211 downward and slightly to the left (the approx.182° position) as illustrated by the vector shown in the representationof the pointing device motion area 110. This deflection of pointingdevice 211 causes the selection vector 206 and its crosshair indicator(the selection point) to move in a corresponding direction to overlay anitem (e.g., letter ‘E’) in the selection set 204. The user has thenactivated selection button 112 thereby causing the selectable item(e.g., letter ‘E’), identified by the selection point, to be inserted atthe insertion point of display area 216 as shown in FIG. 10. Again inthis embodiment, the selection set 204 remains stationary while theselection vector 206 and its crosshair indicator (the selection point)moves in a manner corresponding to deflection of the pointing device211.

In an alternative embodiment of the circularly arranged selection set204 embodiment 200 as shown in FIGS. 6-10, the selection vector 206 andits crosshair indicator (the selection point) can be held stationary ata pre-defined position (e.g., at the 12-o'clock position of display area202) and the circular selection set 204 can be rotated clockwise orcounter-clockwise within display area 202 with a correspondingdeflection of the pointing device 211 to the right or left. In thismanner, a user can move the selection set 204 underneath the stationaryselection point with right or left deflection of the pointing device211. Thus, an item of selection set 204 can be positioned in proximityto the selection point to identify a selectable item. The selection of adesired item in the selection set 204 can be performed in the mannerdescribed above. Similarly, the zoom in and zoom out operations can beperformed in an embodiment of the circularly arranged selection set 204in the same manner as described above.

FIG. 11 illustrates a particular example embodiment of a user interfacefor computer users, electronic game players, or TV users in which aselection set includes items representing a variety of physical orlogical entities. Referring now to an example embodiment illustrated inFIG. 11, a user interface 1100 of an example embodiment is comprised ofa display region 1102 (e.g., a window, a data entry box, etc.) in whicha selection set 1104 is displayed. In the embodiment shown, theselection set 1104 is comprised of a set of items, each of which mayrepresent an individually selectable option. In this case, the items inselection set 1104 are geometric shapes, icons, logos, drawingprimitives, objects, images, device objects, or any of a variety ofother types of selectable items that each represent a correspondingphysical device, a file folder, a file or document, an image, a video oraudio stream, a communication device, mode, network, or protocol, or anyof a variety of other types of objects or entities. In the embodimentillustrated in FIG. 1, the selection set 1104 is configured in a linearpattern of evenly-spaced items extending to the borders of displayregion 1102. In an alternative embodiment, the selection set 1104 maysimilarly be arranged in a circular selection set as described above. Asdescribed above, a selection vector 106 can be provided in the center ofthe display region 1102 to mark a location in display region 1102 atwhich one of the items in selection set 1104 is selectable. Similarly,in a circular selection set embodiment, a selection vector 206 and itscrosshair indicator (the selection point) can be provided to identify aselectable item in selection set 1104 as described above. In thismanner, a wide variety of selectable items can be made available forselection by a user using the various embodiments of the user interfacedescribed herein.

Thus, as described for various embodiments herein, a system and processis disclosed for providing an arrangement of selectable items, amechanism for selection from the arrangement of selectable items, and amechanism for adjusting the granularity of control of the selector. Inone embodiment, the granularity control can be a zooming mechanism tomodify the size and/or position of items in a selection set. In anotherembodiment, the granularity control can be a modification of the motionvector based on a distance from a reference point and the speed orquantity of deflection of a pointing device. Thus, as a selection pointapproaches the selection set, the motion of the selection point becomesless responsive to movement of the pointing device, so the user has morecontrol over the positioning of the selection point relative to an itemin the selection set.

Example Process Flow

Referring to FIG. 12, a processing flow 900 for generating a userinterface in an example embodiment is shown. The method of an exampleembodiment 900 includes: receiving an input from a pointing deviceindicating movement right or left (processing block 910); receiving aninput from a pointing device indicating movement upward or downward(processing block 912); moving a selection set to the right in responseto movement of the pointing device to the right and moving the selectionset to the left in response to movement of the pointing device to theleft (processing block 914); and zooming a selection set outward inresponse to movement of the pointing device downward, and zooming theselection set inward in response to movement of the pointing deviceupward (processing block 916).

Referring to FIG. 13, a processing flow 1300 for generating a userinterface in another example embodiment is shown. The method of anexample embodiment 1300 includes: displaying a selection set in acircular orientation, the selection set including a plurality of items(processing block 1310); receiving an input from a pointing deviceindicating movement in a two-dimensional direction (processing block1312); moving an endpoint of a selection pointer relative to theselection set in response to movement of the pointing device in thetwo-dimensional direction (processing block 1314); and enablingselection of an item in the selection set corresponding to the positionof the endpoint of the selection pointer relative to the selection set(processing block 1316).

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. A component can be a tangibleunit capable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more components of a computer system (e.g., a processor or agroup of processors) may be configured by software (e.g., an applicationor application portion) as a component that operates to perform certainoperations as described herein.

In various embodiments, a component may be implemented mechanically orelectronically. For example, a component may comprise dedicatedcircuitry or logic that is permanently configured (e.g., as aspecial-purpose processor) to perform certain operations. A componentmay also comprise programmable logic or circuitry (e.g., as encompassedwithin a general-purpose processor or other programmable processor) thatis temporarily configured by software to perform certain operations. Itwill be appreciated that the decision to implement a componentmechanically, in dedicated and permanently configured circuitry, or intemporarily configured circuitry (e.g., configured by software) may bedriven by cost and time considerations.

Accordingly, the term “component” should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired) or temporarily configured(e.g., programmed) to operate in a certain manner and/or to performcertain operations described herein. Considering embodiments in whichcomponents are temporarily configured (e.g., programmed), each of thecomponents need not be configured or instantiated at any one instance intime. For example, where the components comprise a general-purposeprocessor configured using software, the general-purpose processor maybe configured as respective different components at different times.Software may accordingly configure a processor, for example, toconstitute a particular component at one instance of time and toconstitute a different component at a different instance of time.

Components can provide information to, and receive information from,other components. Accordingly, the described components may be regardedas being communicatively coupled. Where multiple of such componentsexist contemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe components. In embodiments in which multiple components areconfigured or instantiated at different times, communications betweensuch components may be achieved, for example, through the storage andretrieval of information in memory structures to which the multiplecomponents have access. For example, one component may perform anoperation, and store the output of that operation in a memory device towhich it is communicatively coupled. A further component may then, at alater time, access the memory device to retrieve and process the storedoutput. Components may also initiate communications with input or outputdevices, and can operate on a resource (e.g., a collection ofinformation).

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry,e.g., an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or a combinationpermanently and temporarily configured hardware may be a design choice.Below are set out hardware (e.g., machine) and software architecturesthat may be deployed, in various example embodiments.

Example Machine Architecture and Machine-Readable Medium

FIG. 14 is a block diagram of machine in the example form of a computersystem 700 within which instructions, for causing the machine to performany one or more of the methodologies discussed herein, may be executed.

In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 700 includes a processor 702 (e.g., acentral processing unit (CPU), a graphics processing unit (CPU) orboth), a main memory 70.4 and a static memory 706, which communicatewith each other via a bus 708. The computer system 700 may furtherinclude a video display unit 710 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 700 may also includean alphanumeric input device 712 (e.g., a keyboard), a user interface(UI) pointing device 714 (e.g., pointing device, thumbstick device,mouse, TV remote device, a game controller device, spatial movementdetection devices, such as the Wii system sold by Nintendo of America,Inc., or any other hardware or software device/system, which can signalmovement in a two-dimensional space, herein a pointing device), a diskdrive unit 716, a signal generation device 718 (e.g., a hardware buttonor softkey located anywhere on a remote device, a gesture detectiondevice, audible command detection device, or the like) and a networkinterface device 720.

Machine-Readable Medium

The disk drive unit 716 includes a machine-readable medium 722 on whichis stored one or more sets of instructions and data structures (e.g.,software 724) embodying or utilized by any one or more of themethodologies or functions described herein. The software 724 may alsoreside, completely or at least partially, within the main memory 704and/or within the processor 702 during execution thereof by the computersystem 700, the main memory 704 and the processor 702 also constitutingmachine-readable media.

While the machine-readable medium 722 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present invention, or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including by way of example semiconductormemory devices, e.g., EPROM, EEPROM, and flash memory devices; magneticdisks such as internal hard disks and removable disks; magneto-opticaldisks; and CD-ROM and DVD-ROM disks.

Transmission Medium

The software 724 may further be transmitted or received over acommunications network 726 using a transmission medium. The software 724may be transmitted using the network interface device 720 and any one ofa number of well-known transfer protocols (e.g., HTTP). Examples ofcommunication networks include a local area network (“LAN”), a wide areanetwork (“WAN”), the Internet, mobile telephone networks, Plain OldTelephone (POTS) networks, and wireless data networks (e.g., WiFi andWiMax networks). The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible medium tofacilitate communication of such software.

Example Three-Tier Software Architecture

In some embodiments, the described methods may be implemented using onea distributed or non-distributed software application designed under athree-tier architecture paradigm. Under this paradigm, various parts ofcomputer code (or software) that instantiate or configure components ormodules may be categorized as belonging to one or more of these threetiers. Some embodiments may include a first tier as an interface (e.g.,an interface tier). Further, a second tier may be a logic (orapplication) tier that performs application processing of data inputtedthrough the interface level. The logic tier may communicate the resultsof such processing to the interface tier, and/or to a backend, orstorage tier. The processing performed by the logic tier may relate tocertain rules, or processes that govern the software as a whole. Athird, storage tier, may be a persistent storage medium, or anon-persistent storage medium. In some cases, one or more of these tiersmay be collapsed into another, resulting in a two-tier architecture, oreven a one-tier architecture. For example, the interface and logic tiersmay be consolidated, or the logic and storage tiers may be consolidated,as in the case of a software application with an embedded database. Thethree-tier architecture may be implemented using one technology, or, avariety of technologies. The example three-tier architecture, and thetechnologies through which it is implemented, may be realized on one ormore computer systems operating, for example, as a standalone system, ororganized in a server-client, peer-to-peer, distributed or so some othersuitable configuration. Further, these three tiers may be distributedbetween more than one computer systems as various components.

Components

Example embodiments may include the above described tiers, and processesor operations about constituting these tiers may be implemented ascomponents. Common to many of these components is the ability togenerate, use, and manipulate data. The components, and thefunctionality associated with each, may form part of standalone, client,server, or peer computer systems. The various components may beimplemented by a computer system on an as-needed basis. These componentsmay include software written in an object-oriented computer languagesuch that a component oriented, or object-oriented programming techniquecan be implemented using a Visual Component Library (VCL), ComponentLibrary for Cross Platform (CLX), Java Beans (JB), Java Enterprise Beans(EJB), Component Object Model (COM), Distributed Component Object Model(DCOM), or other suitable technique.

Software for these components may further enable communicative couplingto other components (e.g., via various Application Programminginterfaces (APIs)), and may be compiled into one complete server,client, and/or peer software application. Further, these APIs may beable to communicate through various distributed programming protocols asdistributed computing components.

Distributed Computing Components and Protocols

Some example embodiments may include remote procedure calls being usedto implement one or more of the above described components across adistributed programming environment as distributed computing components.For example, an interface component (e.g., an interface tier) may formpart of a first computer system that is remotely located from a secondcomputer system containing a logic component (e.g., a logic tier). Thesefirst and second computer systems may be configured in a standalone,server-client, peer-to-peer, or some other suitable configuration.Software for the components may be written using the above describedobject-oriented programming techniques, and can be written in the sameprogramming language, or a different programming language. Variousprotocols may be implemented to enable these various components tocommunicate regardless of the programming language used to write thesecomponents. For example, a component written in C++ may be able tocommunicate with another component written in the Java programminglanguage through utilizing a distributed computing protocol such as aCommon Object Request Broker Architecture (CORBA), a Simple ObjectAccess Protocol (SOAP), or some other suitable protocol. Someembodiments may include the use of one or more of these protocols withthe various protocols outlined in the Open Systems Interconnection (OSI)model, or Transmission Control Protocol/Internet Protocol (TCP/IP)protocol stack model for defining the protocols used by a network totransmit data.

A System of Transmission Between a Server and Client

Example embodiments may use the OSI model or TCP/IP protocol stack modelfor defining the protocols used by a network to transmit data. Inapplying these models, a system of data transmission between a serverand client, or between peer computer systems may for example includefive layers comprising: an application layer, a transport layer, anetwork layer, a data link layer, and a physical layer. In the case ofsoftware, for instantiating or configuring components, having a threetier architecture, the various tiers (e.g., the interface, logic, andstorage tiers) reside on the application layer of the TCP/IP protocolstack. In an example implementation using the TCP/IP protocol stackmodel, data from an application residing at the application layer isloaded into the data load field of a TCP segment residing at thetransport layer. This TCP segment also contains port information for arecipient software application residing remotely. This TCP segment isloaded into the data load field of an IP datagram residing at thenetwork layer. Next, this IP datagram is loaded into a frame residing atthe data link layer. This frame is then encoded at the physical layer,and the data transmitted over a network such as an internet, Local AreaNetwork (LAN), Wide Area Network (WAN), or some other suitable network.In some cases, internet refers to a network of networks. These networksmay use a variety of protocols for the exchange of data, including theaforementioned TCP/IP, and additionally ATM, SNA, SDI, or some othersuitable protocol. These networks may be organized within a variety oftopologies (e.g., a star topology), or structures.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as it separate embodiment.

What is claimed is:
 1. A method comprising: receiving an input from apointing device indicating movement right or left; receiving an inputfrom a pointing device indicating movement upward or downward; moving aselection set right in response to movement of the pointing device tothe right, moving the selection set left in response to movement of thepointing device to the left; and zooming the selection set outward inresponse to movement of the pointing device downward, and zooming theselection set inward in response to movement of the pointing deviceupward.